home *** CD-ROM | disk | FTP | other *** search
/ Collection of Tools & Utilities / Collection of Tools and Utilities.iso / c / jpl_c.zip / GETBUF.C < prev    next >
Text File  |  1986-05-18  |  2KB  |  49 lines

  1. /* 1.3  01-08-86                          (getbuf.c)
  2.  ************************************************************************
  3.  *            Robert C. Tausworthe                *
  4.  *            Jet Propulsion Laboratory            *
  5.  *            Pasadena, CA 91009        1986        *
  6.  ************************************************************************/
  7.  
  8. #include "defs.h"
  9. #include "stdtyp.h"
  10. #include "stdio.h"
  11.  
  12. /*----------------------------------------------------------------------*
  13.  
  14.          STANDARD I/O STREAM DEFINITIONS:            */
  15.  
  16. FILE     IObuffs[MAXSTREAM] =     /* i/0 file stream table        */
  17. {    {0, 0, BUFSIZ,    0, 0, _BUSY, STDIN},
  18.     {0, 0,    1,    0, 0, _BUSY, STDOUT},
  19.     {0, 0,    1,      0, 0, _BUSY, STDERR},
  20.     {0, 0,    0,      0, 0,     0,     0},
  21.     {0, 0,    0,      0, 0,     0,    0},
  22.     {0, 0,    0,      0, 0,     0,    0},
  23.     {0, 0,    0,      0, 0,     0,     0},
  24.     {0, 0,    0,      0, 0,     0,     0},
  25.     {0, 0,    0,      0, 0,     0,     0},
  26.     {0, 0,    0,      0, 0,     0,    0}    /* MAXSTREAM elements here */
  27. };
  28.  
  29. /************************************************************************/
  30.     VOID
  31. getbuf(fp)        /* Get a std buffer either from allot(), or use
  32.                the bytbuf if none.    Attach to the FILE fp.    */
  33. /*----------------------------------------------------------------------*/
  34. FAST FILE *fp;
  35. {
  36.     BUFFER buffer, allot();
  37.  
  38.     if ((fp->_buflen < sizeof(HEADER))
  39.        OR ((buffer = allot(fp->_buflen)) IS NULL))
  40.     {    fp->_buff = &fp->_bytbuf;
  41.         fp->_buflen = 1;
  42.         return;
  43.     }
  44.  
  45.     fp->_flags |= _ALLBUF;        /* indicate an allocated buffer    */
  46.     fp->_buff = buffer;
  47.     return;
  48. }
  49.